package string;

public class StringManipulation {
    public static void main(String[] args) {
        String str = "  Hello, World!  ";

        // 1. 去除首尾空白
        String trimmed = str.trim(); // 去除首尾空格
        String stripped = str.strip(); // Java 11+，支持更多空白字符
        System.out.println("原始字符串: [" + str + "]");
        System.out.println("trimmed: [" + trimmed + "]");

        // 2. 字符串拼接
        String s1 = "Hello";
        String s2 = "World";
        String combined1 = s1 + ", " + s2 + "!"; // 使用+运算符
        String combined2 = s1.concat(", ").concat(s2).concat("!"); // 使用concat()
        System.out.println("\n拼接结果: " + combined1);

        // 3. 截取子串
        String substring1 = trimmed.substring(7); // 从索引7到结尾
        String substring2 = trimmed.substring(0, 5); // 从索引0到4（不包括5）
        System.out.println("\n子串1: " + substring1); // "World!"
        System.out.println("子串2: " + substring2);   // "Hello"

        // 4. 查找
        int index1 = trimmed.indexOf('o'); // 第一次出现的位置
        int index2 = trimmed.lastIndexOf('o'); // 最后一次出现的位置
        System.out.println("\n第一个'o'的位置: " + index1);
        System.out.println("最后一个'o'的位置: " + index2);

        // 5. 替换
        String replaced1 = trimmed.replace('o', '0'); // 替换字符
        String replaced2 = trimmed.replace("World", "Java"); // 替换子串
        String replaced3 = trimmed.replaceAll("[aeiou]", "*"); // 正则替换
        System.out.println("\n替换字符: " + replaced1);
        System.out.println("替换子串: " + replaced2);
        System.out.println("正则替换元音: " + replaced3);

        // 6. 大小写转换
        String upper = trimmed.toUpperCase();
        String lower = trimmed.toLowerCase();
        System.out.println("\n大写: " + upper);
        System.out.println("小写: " + lower);

        // 7. 分割字符串
        String csv = "apple,banana,orange,grape";
        String[] fruits = csv.split(",");
        System.out.println("\n分割结果:");
        for (String fruit : fruits) {
            System.out.println("- " + fruit);
        }
    }
}
